package cn.iocoder.yudao.module.crossborder.platform.service.provider.base;

/**
 * 授权提供商抽象基类
 *
 * @author 芋道源码
 */
public abstract class BaseAuthProvider {

    /**
     * 获取授权URL
     *
     * @param storeId 店铺ID
     * @param redirectUri 回调地址
     * @return 授权URL
     */
    public abstract String getAuthUrl(Long storeId, String redirectUri);

    /**
     * 处理授权回调
     *
     * @param storeId 店铺ID
     * @param authCode 授权码
     * @return 授权结果
     */
    public abstract boolean handleAuthCallback(Long storeId, String authCode);

    /**
     * 刷新访问令牌
     *
     * @param storeId 店铺ID
     * @return 刷新结果
     */
    public abstract boolean refreshAccessToken(Long storeId);

    /**
     * 验证授权状态
     *
     * @param storeId 店铺ID
     * @return 授权是否有效
     */
    public abstract boolean validateAuth(Long storeId);

    /**
     * 撤销授权
     *
     * @param storeId 店铺ID
     * @return 撤销结果
     */
    public abstract boolean revokeAuth(Long storeId);

}
